RNA-Seq: Pathway analysis using cameraPR and fGSEA
Libraries required
library(plotly)
library(fgsea)
library(limma)
library(plgINS)
library(multiGSEA)
library(EnrichmentBrowser)
library(grid)
library(gridExtra)
library(heatmaply)Data setup
load("input/limma_SC_Controls_lab_lit.RData")
load("input/gencode.vM18.anno.RData")Genes with length information
genes <- anno[, c(2, 3, 6, 7, 10)]
genes <- genes[!duplicated(genes), ]
g1 <- genes[!genes$entrez_id %in% genes$entrez_id[duplicated(genes$entrez_id)], ]
g2 <- genes[genes$entrez_id %in% genes$entrez_id[duplicated(genes$entrez_id)], ]
g2 <- g2[!duplicated(g2$ensembl), ]
g2 <- g2[!duplicated(g2$symbol), ]
g2$entrez_id[duplicated(g2$entrez_id)] <- g2$symbol[duplicated(g2$entrez_id)]
genes.f <- rbind(g1, g2)
rownames(genes.f) <- genes.f$entrez_idGeneSets
if (!file.exists("output/pathways.rds")) {
MSigdb <- getMSigGeneSetDb(
collection = c("c1", "c2", "c3", "c4", "c5", "c6", "c7", "h"),
species = "mouse", with.kegg = T, species.specific = T
)
go <- GeneSetDb(getGenesets(org = "mmu", db = "go"), collectionName = "Gene Ontology")
go.bp <- GeneSetDb(getGenesets(org = "mmu", go.onto = "BP"), collectionName = "GO_BP")
go.mf <- GeneSetDb(getGenesets(org = "mmu", go.onto = "MF"), collectionName = "GO_MF")
go.cc <- GeneSetDb(getGenesets(org = "mmu", go.onto = "CC"), collectionName = "GO_CC")
kegg <- GeneSetDb(getGenesets(org = "mmu", db = "kegg"), collectionName = "KEGG")
reactome <- getReactomeGeneSetDb(species = "mouse", rm.species.prefix = T)
gdb <- Reduce(append, list(go, go.bp, go.cc, go.mf, kegg, reactome, MSigdb))
gdb@table$organism <- "Mus musculus"
pathwaysDB <- data.frame(gdb@db, stringsAsFactors = F)
pathwaysDB$symbol_anno <- genes.f[pathwaysDB$featureId, "symbol"]
pathwaysDB$symbol_anno[is.na(pathwaysDB$symbol_anno)] <- pathwaysDB$featureId[is.na(pathwaysDB$symbol_anno)]
pathways <- split(x = pathwaysDB[, c(1, 2, 5)], f = pathwaysDB$collection)
pathways <- lapply(pathways, function(x) split(x[, 3], x$name))
saveRDS(object = pathways, file = "output/pathways.rds")
} else {
pathways <- readRDS("output/pathways.rds")
}
pathways <- pathways[5:7]fgsea
fgsea.pnd8.pnd15 <- lapply(pathways, function(x) {
dea <- dea.limma$`pnd8 vs pnd15`
genes <- dea$t
names(genes) <- dea$Genes
res <- fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, maxSize = 1000, nproc = detectCores() - 1)
# res <- data.frame(res[res$padj <= 0.05, ])
rownames(res) <- res$pathway
return(res)
})
fgsea.pnd15.adult <- lapply(pathways, function(x) {
dea <- dea.limma$`pnd14 vs pnw8`
genes <- dea$logFC
names(genes) <- dea$Genes
res <- fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, maxSize = 1000, nproc = detectCores() - 1)
# res <- data.frame(res[res$padj <= 0.05, ])
rownames(res) <- res$pathway
return(res)
})## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, : There are ties in the preranked stats (7.45% of the list).
## The order of those tied genes will be arbitrary, which may produce unexpected results.
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, :
## There were 44 pathways for which P-values were not calculated properly due to
## unbalanced gene-level statistic values
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, : There are ties in the preranked stats (7.45% of the list).
## The order of those tied genes will be arbitrary, which may produce unexpected results.
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, :
## There were 36 pathways for which P-values were not calculated properly due to
## unbalanced gene-level statistic values
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, : There are ties in the preranked stats (7.45% of the list).
## The order of those tied genes will be arbitrary, which may produce unexpected results.
## Warning in fgsea(pathways = x, stats = genes, nperm = 1000, minSize = 10, :
## There were 27 pathways for which P-values were not calculated properly due to
## unbalanced gene-level statistic values
cameraPR
Function
cameraPR <- function(statistic, index, use.ranks = FALSE, inter.gene.cor = 0.01, sort = TRUE, ...) {
dots <- names(list(...))
if (length(dots)) warning("Extra arguments disregarded: ", sQuote(dots))
# Check statistic
if (is.list(statistic)) stop("statistic should be a numeric vector")
storage.mode(statistic) <- "numeric"
if (anyNA(statistic)) stop("NA values for statistic not allowed")
G <- length(statistic)
ID <- names(statistic)
if (G < 3) stop("Too few genes in dataset: need at least 3")
# Check index
if (!is.list(index)) index <- list(set1 = index)
index <- index[which(!sapply(index, function(x) length(x) < 10))] # ADDED BY ASA 190527 to mimic fgsea minSize = 10
nsets <- length(index)
# Check inter.gene.cor
if (anyNA(inter.gene.cor)) stop("NA inter.gene.cor not allowed")
if (any(abs(inter.gene.cor) >= 1)) stop("inter.gene.cor too large or small")
if (length(inter.gene.cor) > 1L) {
if (length(inter.gene.cor) != nsets) stop("Length of inter.gene.cor doesn't match number of sets")
fixed.cor <- FALSE
} else {
fixed.cor <- TRUE
inter.gene.cor <- rep_len(inter.gene.cor, nsets)
}
# Set df
if (use.ranks) {
df.camera <- Inf
} else {
df.camera <- G - 2L
}
# Global statistics
meanStat <- mean(statistic)
varStat <- var(statistic)
tst <- c() ### ADDED BY ASA on 190514
NGenes <- Down <- Up <- rep_len(0, nsets)
for (i in 1:nsets) {
iset <- index[[i]]
if (is.character(iset)) iset <- which(ID %in% iset)
StatInSet <- statistic[iset]
m <- length(StatInSet)
NGenes[i] <- m
if (use.ranks) {
p.value <- rankSumTestWithCorrelation(iset,
statistics = statistic,
correlation = inter.gene.cor[i], df = df.camera
)
Down[i] <- p.value[1]
Up[i] <- p.value[2]
} else {
vif <- 1 + (m - 1) * inter.gene.cor[i]
m2 <- G - m
meanStatInSet <- mean(StatInSet)
delta <- G / m2 * (meanStatInSet - meanStat)
varStatPooled <- ((G - 1L) * varStat - delta^2 * m * m2 / G) / (G - 2L)
two.sample.t <- delta / sqrt(varStatPooled * (vif / m + 1 / m2))
tst[i] <- two.sample.t ### ADDED BY ASA on 190514
Down[i] <- pt(two.sample.t, df = df.camera)
Up[i] <- pt(two.sample.t, df = df.camera, lower.tail = FALSE)
}
}
TwoSided <- 2 * pmin(Down, Up)
# Assemble into data.frame
D <- (Down < Up)
Direction <- rep_len("Up", nsets)
Direction[D] <- "Down"
if (fixed.cor) {
tab <- data.frame(NGenes = NGenes, Direction = Direction, PValue = TwoSided, TwoSampT = tst, stringsAsFactors = FALSE)
} ### ADDED TwoSampT on 190514
else {
tab <- data.frame(NGenes = NGenes, Correlation = inter.gene.cor, Direction = Direction, PValue = TwoSided, stringsAsFactors = FALSE)
}
rownames(tab) <- names(index)
# Add FDR
if (nsets > 1L) tab$FDR <- p.adjust(tab$PValue, method = "BH")
# Sort by p-value
if (sort && nsets > 1L) {
o <- order(tab$PValue)
tab <- tab[o, ]
}
tab
}cameraPR
cameraPR.pnd8.pnd15 <- lapply(pathways, function(x) {
dea <- dea.limma$`pnd8 vs pnd15`
genes <- dea$t
names(genes) <- dea$Genes
res <- cameraPR(genes, x)
# res <- res[res$FDR <= 0.05, ]
res <- data.frame(pathway = rownames(res), res, stringsAsFactors = F)
return(res)
})
cameraPR.pnd15.adult <- lapply(pathways, function(x) {
dea <- dea.limma$`pnd14 vs pnw8`
genes <- dea$logFC
names(genes) <- dea$Genes
res <- cameraPR(genes, x)
# res <- res[res$FDR <= 0.05, ]
res <- data.frame(pathway = rownames(res), res, stringsAsFactors = F)
return(res)
})Results
Tables
Function
make_DT <- function(df) {
df <- data.frame(df, stringsAsFactors = F, check.names = F)
DT::datatable(
df,
rownames = F,
filter = "top", extensions = c("Buttons", "ColReorder"), options = list(
pageLength = 10,
buttons = c("copy", "csv", "excel", "pdf", "print"),
colReorder = list(realtime = FALSE),
dom = "fltBip"
)
)
}PND8 vs PND15
fgsea.pnd8.pnd15 <- lapply(fgsea.pnd8.pnd15, function(x) {
x$leadingEdgeGenes <- NA
for (i in 1:nrow(x)) {
x$leadingEdgeGenes[i] <- paste(x$leadingEdge[[i]], collapse = ",")
}
x <- data.frame(x)
x <- x[, !colnames(x) %in% "leadingEdge"]
return(x)
})
path <- fgsea.pnd8.pnd15
for (i in 1:length(path)) {
n <- paste0("./output/fGSEA_PND8vsPND15_", names(path)[i], ".xlsx")
n <- gsub(pattern = " ", replacement = "-", x = n)
writexl::write_xlsx(x = data.frame(path[[i]]), path = n, col_names = T, format_headers = T)
}CameraPR
path <- cameraPR.pnd8.pnd15
for (i in 1:length(path)) {
n <- paste0("./output/cameraPR_PND8vsPND15_", names(path)[i], ".xlsx")
n <- gsub(pattern = " ", replacement = "-", x = n)
writexl::write_xlsx(x = path[[i]], path = n, col_names = T, format_headers = T)
}PND14 vs PNW8
fGSEA
fgsea.pnd15.adult <- lapply(fgsea.pnd15.adult, function(x) {
x$leadingEdgeGenes <- NA
for (i in 1:nrow(x)) {
x$leadingEdgeGenes[i] <- paste(x$leadingEdge[[i]], collapse = ",")
}
x <- data.frame(x)
x <- x[, !colnames(x) %in% "leadingEdge"]
return(x)
})
path <- fgsea.pnd15.adult
for (i in 1:length(path)) {
n <- paste0("./output/fGSEA_PND14vsPNW8_", names(path)[i], ".xlsx")
n <- gsub(pattern = " ", replacement = "-", x = n)
writexl::write_xlsx(x = path[[i]], path = n, col_names = T, format_headers = T)
}CameraPR
path <- cameraPR.pnd15.adult
for (i in 1:length(path)) {
n <- paste0("./output/cameraPR_PND14vsPNW8_", names(path)[i], ".xlsx")
n <- gsub(pattern = " ", replacement = "-", x = n)
writexl::write_xlsx(x = path[[i]], path = n, col_names = T, format_headers = T)
}Common pathways
PND8 vs PND15
common.pnd8vspnd15 <- list()
for (i in 1:length(fgsea.pnd8.pnd15)) {
n <- names(fgsea.pnd8.pnd15)[i]
tab1 <- fgsea.pnd8.pnd15[[n]]
colnames(tab1)[2:ncol(tab1)] <- paste("fGSEA", colnames(tab1)[2:ncol(tab1)], sep = "-")
tab2 <- cameraPR.pnd8.pnd15[[n]]
colnames(tab2)[2:ncol(tab2)] <- paste("cameraPR", colnames(tab2)[2:ncol(tab2)], sep = "-")
tab <- merge(tab1, tab2, by = "pathway")
common.pnd8vspnd15[[i]] <- tab
names(common.pnd8vspnd15)[i] <- n
writexl::write_xlsx(
x = tab, path = paste0("./output/common_PND8vsPND15_", n, ".xlsx"),
col_names = T, format_headers = T
)
}PND15 vs Adult
common.pnd15vsadult <- list()
for (i in 1:length(fgsea.pnd15.adult)) {
n <- names(fgsea.pnd15.adult)[i]
tab1 <- fgsea.pnd15.adult[[n]]
colnames(tab1)[2:ncol(tab1)] <- paste("fGSEA", colnames(tab1)[2:ncol(tab1)], sep = "-")
tab2 <- cameraPR.pnd15.adult[[n]]
colnames(tab2)[2:ncol(tab2)] <- paste("cameraPR", colnames(tab2)[2:ncol(tab2)], sep = "-")
tab <- merge(tab1, tab2, by = "pathway")
common.pnd15vsadult[[i]] <- tab
names(common.pnd15vsadult)[i] <- n
writexl::write_xlsx(
x = tab, path = paste0("./output/common_PND14vsPNW8_", n, ".xlsx"),
col_names = T, format_headers = T
)
}References
report::cite_packages(sessionInfo())## Warning in citation(pkg_name): no date field in DESCRIPTION file of package
## 'multiGSEA'
## Warning in citation(pkg_name): no date field in DESCRIPTION file of package
## 'plgINS'
SessionInfo
devtools::session_info()## ─ Session info ───────────────────────────────────────────────────────────────
## setting value
## version R version 3.6.2 (2019-12-12)
## os Ubuntu 16.04.7 LTS
## system x86_64, linux-gnu
## ui X11
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz Europe/Zurich
## date 2020-10-06
##
## ─ Packages ───────────────────────────────────────────────────────────────────
## package * version date lib
## annotate 1.64.0 2019-10-29 [1]
## AnnotationDbi 1.48.0 2019-10-29 [1]
## assertthat 0.2.1 2019-03-21 [1]
## backports 1.1.8 2020-06-17 [1]
## base64enc 0.1-3 2015-07-28 [1]
## Biobase * 2.46.0 2019-10-29 [1]
## BiocGenerics * 0.32.0 2019-10-29 [1]
## BiocParallel * 1.20.1 2019-12-21 [1]
## Biostrings 2.54.0 2019-10-29 [1]
## bit 4.0.4 2020-08-04 [1]
## bit64 4.0.2 2020-07-30 [1]
## bitops 1.0-6 2013-08-17 [1]
## blob 1.2.1 2020-01-20 [1]
## bookdown 0.20 2020-06-23 [1]
## callr 3.4.3 2020-03-28 [1]
## caTools 1.18.0 2020-01-17 [1]
## checkmate 2.0.0 2020-02-06 [1]
## circlize 0.4.10 2020-06-15 [1]
## cli 2.0.2 2020-02-28 [1]
## clue 0.3-57 2019-02-25 [1]
## cluster 2.1.0 2019-06-19 [1]
## codetools 0.2-16 2018-12-24 [1]
## colorspace 1.4-1 2019-03-18 [1]
## ComplexHeatmap 2.5.5 2020-08-13 [1]
## crayon 1.3.4 2017-09-16 [1]
## crosstalk 1.1.0.1 2020-03-13 [1]
## data.table 1.13.0 2020-07-24 [1]
## DBI 1.1.0 2019-12-15 [1]
## DelayedArray * 0.12.3 2020-04-09 [1]
## dendextend 1.13.4 2020-02-28 [1]
## desc 1.2.0 2018-05-01 [1]
## DESeq2 1.26.0 2019-10-29 [1]
## devtools 2.3.1 2020-07-21 [1]
## digest 0.6.25 2020-02-23 [1]
## dplyr 1.0.1 2020-07-31 [1]
## DT * 0.15 2020-08-05 [1]
## edgeR * 3.28.1 2020-02-26 [1]
## ellipsis 0.3.1 2020-05-15 [1]
## EnrichmentBrowser * 2.16.1 2019-12-04 [1]
## evaluate 0.14 2019-05-28 [1]
## fansi 0.4.1 2020-01-08 [1]
## fastmap 1.0.1 2019-10-08 [1]
## fastmatch 1.1-0 2017-01-28 [1]
## fgsea * 1.12.0 2019-10-29 [1]
## foreach 1.5.0 2020-03-30 [1]
## foreign 0.8-76 2020-03-03 [1]
## Formula 1.2-3 2018-05-03 [1]
## fs 1.5.0 2020-07-31 [1]
## gclus 1.3.2 2019-01-07 [1]
## gdata 2.18.0 2017-06-06 [1]
## genefilter 1.68.0 2019-10-29 [1]
## geneplotter 1.64.0 2019-10-29 [1]
## generics 0.0.2 2018-11-29 [1]
## GenomeInfoDb * 1.22.1 2020-03-27 [1]
## GenomeInfoDbData 1.2.2 2019-11-18 [1]
## GenomicRanges * 1.38.0 2019-10-29 [1]
## GEOquery 2.54.1 2019-11-18 [1]
## GetoptLong 1.0.2 2020-07-06 [1]
## ggplot2 * 3.3.2 2020-06-19 [1]
## GlobalOptions 0.1.2 2020-06-10 [1]
## glue 1.4.1 2020-05-13 [1]
## gplots 3.0.4 2020-07-05 [1]
## graph * 1.64.0 2019-10-29 [1]
## gridExtra * 2.3 2017-09-09 [1]
## GSEABase 1.48.0 2019-10-29 [1]
## GSVA 1.34.0 2019-10-29 [1]
## gtable 0.3.0 2019-03-25 [1]
## gtools 3.8.2 2020-03-31 [1]
## heatmaply * 1.1.0 2020-03-28 [1]
## Hmisc 4.4-1 2020-08-10 [1]
## hms 0.5.3 2020-01-08 [1]
## htmlTable 2.0.1 2020-07-05 [1]
## htmltools 0.5.0 2020-06-16 [1]
## htmlwidgets 1.5.1 2019-10-08 [1]
## httpuv 1.5.4 2020-06-06 [1]
## httr 1.4.2 2020-07-20 [1]
## insight 0.9.0 2020-07-20 [1]
## IRanges * 2.20.2 2020-01-13 [1]
## iterators 1.0.12 2019-07-26 [1]
## jpeg 0.1-8.1 2019-10-24 [1]
## jsonlite 1.7.0 2020-06-25 [1]
## KEGGgraph 1.46.0 2019-10-29 [1]
## KernSmooth 2.23-17 2020-04-26 [1]
## knitr 1.29 2020-06-23 [1]
## later 1.1.0.1 2020-06-05 [1]
## lattice 0.20-41 2020-04-02 [1]
## latticeExtra 0.6-29 2019-12-19 [1]
## lazyeval 0.2.2 2019-03-15 [1]
## lifecycle 0.2.0 2020-03-06 [1]
## limma * 3.42.2 2020-02-03 [1]
## locfit 1.5-9.4 2020-03-25 [1]
## magrittr 1.5 2014-11-22 [1]
## MASS 7.3-51.6 2020-04-26 [1]
## Matrix 1.2-18 2019-11-27 [1]
## matrixStats * 0.56.0 2020-03-13 [1]
## memoise 1.1.0.9000 2020-05-06 [1]
## mime 0.9 2020-02-04 [1]
## multiGSEA * 0.11.1 2019-01-29 [1]
## munsell 0.5.0 2018-06-12 [1]
## nnet 7.3-14 2020-04-26 [1]
## pillar 1.4.6 2020-07-10 [1]
## pkgbuild 1.1.0 2020-07-13 [1]
## pkgconfig 2.0.3 2019-09-22 [1]
## pkgload 1.1.0 2020-05-29 [1]
## plgINS * 0.1.5 2020-07-10 [1]
## plotly * 4.9.2.1 2020-04-04 [1]
## plyr 1.8.6 2020-03-03 [1]
## png 0.1-7 2013-12-03 [1]
## prettyunits 1.1.1 2020-01-24 [1]
## processx 3.4.3 2020-07-05 [1]
## promises 1.1.1 2020-06-09 [1]
## ps 1.3.3 2020-05-08 [1]
## purrr 0.3.4 2020-04-17 [1]
## R6 2.4.1 2019-11-12 [1]
## rappdirs 0.3.1 2016-03-28 [1]
## RColorBrewer 1.1-2 2014-12-07 [1]
## Rcpp * 1.0.5 2020-07-06 [1]
## RCurl 1.98-1.2 2020-04-18 [1]
## readr 1.3.1 2018-12-21 [1]
## registry 0.5-1 2019-03-05 [1]
## remotes 2.2.0 2020-07-21 [1]
## report 0.1.0 2020-03-19 [1]
## reshape2 1.4.4 2020-04-09 [1]
## rjson 0.2.20 2018-06-08 [1]
## rlang 0.4.7 2020-07-09 [1]
## rmarkdown 2.3 2020-06-18 [1]
## rmdformats 0.4.0 2020-06-07 [1]
## rpart 4.1-15 2019-04-12 [1]
## rprojroot 1.3-2 2018-01-03 [1]
## RSQLite 2.1.4 2019-12-04 [1]
## rstudioapi 0.11 2020-02-07 [1]
## S4Vectors * 0.24.4 2020-04-09 [1]
## scales 1.1.1 2020-05-11 [1]
## seriation 1.2-8 2019-08-27 [1]
## sessioninfo 1.1.1 2018-11-05 [1]
## shape 1.4.4 2018-02-07 [1]
## shiny 1.5.0 2020-06-23 [1]
## shinythemes 1.1.2 2018-11-06 [1]
## SRAdb 1.48.2 2019-12-24 [1]
## stringi 1.4.6 2020-02-17 [1]
## stringr 1.4.0 2019-02-10 [1]
## SummarizedExperiment * 1.16.1 2019-12-19 [1]
## survival 3.2-3 2020-06-13 [1]
## testthat 2.3.2 2020-03-02 [1]
## tibble 3.0.3 2020-07-10 [1]
## tidyr 1.1.0 2020-05-20 [1]
## tidyselect 1.1.0 2020-05-11 [1]
## TSP 1.1-10 2020-04-17 [1]
## usethis 1.6.1 2020-04-29 [1]
## vctrs 0.3.2 2020-07-15 [1]
## viridis * 0.5.1 2018-03-29 [1]
## viridisLite * 0.3.0 2018-02-01 [1]
## webshot 0.5.2 2019-11-22 [1]
## withr 2.2.0 2020-04-20 [1]
## writexl 1.3 2020-05-05 [1]
## xfun 0.16 2020-07-24 [1]
## XML 3.99-0.3 2020-01-20 [1]
## xml2 1.3.2 2020-04-23 [1]
## xtable 1.8-4 2019-04-21 [1]
## XVector 0.26.0 2019-10-29 [1]
## yaml 2.2.1 2020-02-01 [1]
## zlibbioc 1.32.0 2019-10-29 [1]
## source
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Github (jokergoo/ComplexHeatmap@57491b0)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## Bioconductor
## CRAN (R 3.6.2)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## Github (r-lib/memoise@4aefd9f)
## CRAN (R 3.6.2)
## Github (lianos/multiGSEA@b8747ab)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## local
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## Github (easystats/report@dcdd283)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## Github (juba/rmdformats@94cd7a3)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.2)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.2)
## Bioconductor
##
## [1] /home/ubuntu/R/x86_64-pc-linux-gnu-library/3.6
## [2] /usr/local/lib/R/site-library
## [3] /usr/lib/R/site-library
## [4] /usr/lib/R/library